package yartiss.service.model;

import java.util.List;

import yartiss.engine.simulation.Event;
import yartiss.engine.simulation.IEventAddedListener;
import yartiss.engine.simulation.system.ITask;

public interface IEventsModel {
	
	public List<Event> getEvents(long startTime, long duration);
	public List<Event> getAllEvents();
	public List<Event> getTaskEvents(ITask task, long startTime, long duration);
	public List<Event> getAllTaskEvents(ITask task);
	
	public List<Event> getProcEvents(int procId, long startTime, long duration);
	public List<Event> getAllProcEvents(int procId);
	public Iterable<Integer>  getAllProcsIds();
	
	public long getFinishTime();
	public Iterable<ITask>  getAllTasks();
	public void addEventAddedListener(IEventAddedListener l);
	public void removeEventAddedListener(IEventAddedListener l);
	
}
